do_softirq();
rdtscl(cc_end);
- perfc_adda(irq_time, cpu, cc_end - cc_start);
+
+ if(!action || (!(action->flags & SA_NOPROFILE)) )
+ perfc_adda(irq_time, cpu, cc_end - cc_start);
return 1;
}
return;
}
if (element_size == 0) { /* single counter */
- printf ("%10ld 0x%08lx %s\n", counter[0], counter[0],
+ printf ("%10lu 0x%08lx %s\n", counter[0], counter[0],
perfc_name[loop] + 2 + num);
} else if (cpus) { /* counter per CPU */
for (loop = 0; loop < smp_num_cpus; loop++) {
- printf ("%10ld 0x%08lx cpu[%02d] %s\n",
+ printf ("%10lu 0x%08lx cpu[%02d] %s\n",
counter[loop], counter[loop],
loop, perfc_name[loop]);
}
} else { /* show entire array */
for (loop = 0; loop < element_size; loop++) {
- printf ("%10ld 0x%08lx %s:%d\n",
+ printf ("%10lu 0x%08lx %s:%d\n",
counter[loop], counter[loop],
perfc_name[loop] + 2 + num, loop);
}
}
}
+ //perfc_reset( key, dev_id, regs );
+
return;
}
#include <asm-i386/io.h>
+#include <asm-i386/irq.h>
#include <xeno/sched.h> /* this has request_irq() proto for some reason */
#include <xeno/keyhandler.h>
void initialize_keyboard()
{
- if(request_irq(KEYBOARD_IRQ, keyboard_interrupt, 0, "keyboard", NULL))
+ if(request_irq(KEYBOARD_IRQ, keyboard_interrupt, SA_NOPROFILE, "keyboard", NULL))
printk("initialize_keyboard: failed to alloc IRQ %d\n", KEYBOARD_IRQ);
return;
outb(NS16550_MCR_OUT2, SERIAL_BASE + NS16550_MCR); /* Modem control */
outb(NS16550_IER_ERDAI, SERIAL_BASE + NS16550_IER ); /* Setup interrupts */
- if((rc = request_irq(4, serial_rx_int, 0, "serial", 0)))
+ if((rc = request_irq(4, serial_rx_int, SA_NOPROFILE, "serial", 0)))
printk("initialize_serial: failed to get IRQ4, rc=%d\n", rc);
}
#define SA_INTERRUPT 0x20000000
#define SA_SHIRQ 0x04000000
+#define SA_NOPROFILE 0x02000000
#define SA_SAMPLE_RANDOM 0 /* Linux driver compatibility */